幹訓2
資安「超」入門
這是在幹嘛? YuSheng
這是一個很輕鬆的課程
貼心提醒 :
課程中你應該...
聽台上那個唬爛
不然欣賞我的帥氣也好
把該記得的牢牢記住
把不該記的一秒忘光
不然會有人敲我家門要送麥當勞
貼心提醒 :
課程中你不能做什麼呢?
如果我的聲音太好聽
讓你想睡覺
記得睡覺時不可以打呼
如果覺得我講得很無趣
想跟朋友聊天
不可以聊的比我還大聲
如果我講得太爛
讓你很不爽
拜託不要往台上丟垃圾
這個一直幹話的是誰?
我是 紅**綠**燈**(洪毓昇)**
哪裡可以找到我
- 雲科網管地下室
- Idea Factory 創意工場ㄉ Crafts Workshop 工藝工坊
- 活動中心很多人轉棒棒、球球或扇扇的地方
如果你都找不到?
對不起我們無緣
今天我是來幹嘛的呢?
來騙吃騙喝的
資安與你我的關聯
什麼是資訊安全?
先來講講......資訊
我們的資訊生活 | |
---|---|
LINE / Beetalk / Wechat ... | 聊天軟體 |
Facebook / plurk ... | 社交網路 |
Gmail / google doc / Youtube... | 網路服務 |
Y拍 / 露天拍賣 / PChome ... | 購物網站 |
dropbox / google drive ... | 雲端儲存 |
學校選課系統 / 成績查詢系統 ... | 校園資訊服務 |
政府戶政系統 / 公文系統 ... | 政府行政系統 |
...... and more |
那麼資訊怎樣不安全?
Line 詐騙
第一次支付 Bitcoin 就上手
檔案通通加密超安全的
密碼遭竊 駭客幫你跟學妹告白
資訊安全影響到底多大?
在我們聊天的同時
網路攻擊其實相當頻繁
台灣每分鐘就遭受 6次攻擊
好了說了那麼多進入今天主題吧
讓我們來聊聊...
何謂駭客?
你認為駭客是怎樣的人?
大部分人對駭客的印象?
電影裡的駭客
遊戲裡的駭客
一般人心中的駭客
八點檔駭客
影片所以什麼是駭客?
Hacker / Cracker
「Hacker」們建設,而「Cracker」們破壞。
駭客 / 黑客
NOTE: 「駭客」(hacker) 一詞一般有以下意義: 一個對(某領域內的)程式語言有足夠了解,可以不經長時間思考 就能創造出有用的軟體的人。 喜愛編程(Coding)並享受在其中變得更擅長於編程的人。 喜愛自由(Freedom),不易受約束,但覺得假如是為了喜愛的事物, 可以被受適當的約束。 「黑客、怪客、垮客和劊客」(cracker) 一詞一般有以下意義: 一個惡意(一般是非法地)試圖破解或破壞某個程式、系統及網路 安全的人。
白帽駭客 / 黑帽駭客
何謂 駭客 / 白帽駭客 !?
NOTE: 白帽駭客有能力入侵電腦系統、破壞系統。不過他利用他的技能來協助組 織加強安全。例如在資安公司進行滲透、弱掃的執行者,或負責資安的 網管人員。
- 滲透測試工程師
- 資安威脅分析師
- SOC 監控工程師
- 漏洞挖掘工程師
- 資訊安全顧問
- etc......
何謂 黑客 / 黑帽駭客
NOTE: 黑帽駭客也被叫做Cracker,他們利用自已的技能來進行非道德行為。如攻擊、竊取資料…。
- 垃圾郵件、簡訊寄送黑產
- 個資販售
- DDoS 攻擊流量販售
- 針對社群帳號、公司等攻擊委託
- 外掛、後門製作販售
提問 : 要當好人還壞人
先論 : 當好人好累
後論 : 當壞人好爽
結論 : 我要當壞人
所以分析一下...
駭客的第一堂課
成為駭客前要學習的有...
俗話說我們領進門,修行在個人
今天只會講一點點的密碼學&網路資安
讓人好想睡覺的密碼學
密碼學是什麼
- 不是研究怎麼設安全的密碼
- 不是教你怎麼破解別人 Instagram
- 你不會因為知道密碼學在幹嘛就變成天才駭客
- 很多很多很多數學
常見詞彙解釋
加密 Encrypt | 指將明文經過某種程序轉換成密文,該程序稱為加密 |
解密 Decrypt | 指將密文經過某種程序轉換成明文,該程序稱為解密 |
明文 Plaintext | 加密前的訊息 |
密文 Cipertext | 加密後的訊息 |
演算法 Algorithm | 解決複雜問題的程序 |
密碼學演算法 | 做與密碼學相關程序(如加密、解密、簽章...)的演算法 |
金鑰/密鑰 Key | 加解密時所使用的「鑰匙」 |
開始之前打開一下這ㄍ網址,然後註冊
點 Join Team
Team Name 是第一、第二、第三組
Team Password 是 first、second、third
分組名單
第一組: 張珉萁、何育玟、蔡承佑、周永陞 第二組: 謝孟憲、張慈玲、范綱庭、陳珮玲 第三組: 伍俊義、高仲寧、林家明
然後先來玩一下ㄅ
古典密碼學
- 資料保密、傳遞
- 密碼破譯
常見的古典加密法
- 豬圈加密
- 凱薩密碼
- 單一字元替代密碼
何謂 豬圈加密 ?
阿 放錯ㄌ
NOTE: 沒有人明確知道它是什麼時候發明的 但在1700年代,共濟會常常使用這種密碼保護一些私密紀錄或用來通訊,所以又稱共濟會密碼。
他的概念像
NOTE:是一種通過格子符號作為基礎來代替的簡單密碼,這種密碼規律性很強一般很容易破解。
何謂 凱薩密碼 ?
Step 1. 替字母編號
首先將字母依照順序排好,同時給它們編號
類似下表:
編號 | A | B | C | D | E | F |
---|---|---|---|---|---|---|
字母 | 0 | 1 | 2 | 3 | 4 | 5 |
(為了方便,這邊我只取A~F作說明)
Step 2. 選擇偏移量
選擇1個數字,當偏移量,無論是加or解密,都是靠這個數字!
這邊先選擇「2」作為示範
Step 3. 進行加密
假設有一段文字為: ADD BAD EBB
對應 Step 1 的表可以得到各字母的編號
A D D | B A D | E B B |
---|---|---|
0 3 3 | 1 0 3 | 4 1 1 |
替各個編號加上 Step 2 時選擇的偏移量「2」
遇到超過的數字就回到 0
最後再將編號轉成對應的新字母:
C F F | D C F | A D D |
---|---|---|
2 5 5 | 3 2 5 | 0 3 3 |
用數學式表示凱薩密碼
瞬間好像很厲害
先定義一下變數的意義:
D | 明文 ( 加密前的文章 ) |
E | 密文 ( 加密後的文章 ) |
K | 金鑰、偏移量 ( 範圍 0 ~ 25 ) |
過程其實很簡單,透過 mod 就可以: | | | | ---- | ------------------------- | | 加密 | E = ( D + K ) mod 26 | | 解密 | D = ( E - K + 26 ) mod 26 |
解密為避免產生負數,所以要先 +26
透過 mod 可以使其結果範圍限制在 0~25 之中
NOTE: 以 Step 1 的表舉例的話,a的值是0,所以把 E=(0+2)mod26=2
然後解密就是 D = (2-2+26)mod26=0
用一張圖解釋一切
講完來一題 睡意都遠離 :D
何謂 單一字元替代密碼 ?
和凱薩密碼一樣是字母一對一代換,但沒有規律
豬圈密碼也是一種替代密碼
換字表(密鑰): |
---|
a -> h |
b -> e |
c -> q |
d -> k |
加密:dcba -> kqeh
解密:kqeh -> dcba
NOTE: 攻擊:字頻分析(Frequency analysis)
最常出現的字母:e, t, a, o, i
最常出現的單字:the, to, of, and
現代密碼學
- 古典密碼學的所有東西
- 資料完整性驗證(Data integrity)
- 資料的不可否認性( Non-repudiation)
- 雜湊函數(Hash)
- 亂數
- 隱寫術(Steganography)
- ...
現代常見加密法可簡分成兩種
- 對稱式加密法
- 非對稱式加密法
何謂 對稱式加密 ?
就是加密解密用的 Key 是同一個。
NOTE:
對稱性加密中的「對稱」指的是加密和解密使用相同的金鑰(密碼表)。他的優點是加密過程簡單明瞭,且在金鑰不外流的情況下安全性很高。但缺點是一旦金鑰外流,整個密碼系統就瓦解了。無論是過去戰爭或是現代生活,保證金鑰絕不外流是一件不切實際的事,因此對稱性加密的安全性並不是真的很可靠。
知名對稱式加密演算法:AES
我累ㄌ讓我休息一下
有請 YouTube 出場
{%youtube 4AV0LEQTNTc %}
何謂 非對稱式加密 ?
加密解密使用不同的 Key
NOTE:
「非對稱」指的是加密和解密使用不同的金鑰,因此我們可以任意的發送只能用來加密的公開金鑰。圖中男孩像女孩發送訊息前,必須先索取一份公鑰,傳送訊息步驟稍長,但安全性提高很多。竊聽者再怎麼攔截訊號,都無法得到解密用的私鑰,因為它從來不存在於通訊之中。唯一能竊取私鑰的方法就是侵入持有者的電腦或家中(但如果他真的成功入侵,他直接竊取訊息就好,也不需要竊取金鑰了)。
知名非對稱演算法:RSA
RSA怎麼算ㄉ | |
---|---|
Step 1. | P=2、Q=3 |
Step 2. | N=P x Q |
Step 3. | r=(P-1)(Q-1) |
Step 4. | 公鑰 E 需符合 1<E<r 且與 r 互質 |
Step 5. | 私鑰 D = ExD mod r = 1 |
加密 | C = M^E mod N |
解密 | M = C^D mod N |
相關證明可以去 google
我相信我講ㄌ可能會死一半,包含我(#
NOTE: 先找兩個質數 P、Q
r 其實在數學上的定義是歐拉函數念作ㄈㄞ
意思是不大於r,而且和r互質的所有的整數個數
就是說在r這麼多的數裡面,有多少個數目是比r小,而且和r互質的整數個數
接下來開始噁心了,我們要開始找公鑰和私鑰,公鑰很好找,隨便找一個就好
然後我們再找一個私鑰 D ,私鑰 D 就是, E乘上D後除以r的餘數為 1
這時候就可以來加解密了,YA
阿加解密的過程就牽涉到離散數學ㄉ費馬小定理&模數運算
RSA 的安全性
回來看這張圖
NOTE: 這時如果小明傳訊息給小美後,在網路上流通的東西會有 一個大數N,還有公鑰e,以及加密過後的密文C
要解密首先需要知道的是一個N,還有私鑰D,以及密文C
如果駭客在中間竊取到資訊後,雖然有N、E、C,但因為缺少私鑰D,所以無法解密
就會有人說如果我想算一下呢,我通過E算出D行不行
E->D 必須知道 r
r = (P-1)(Q-1)
所以就必須求出P和Q
N=PxQ
這就是質因數分解
對稱非對稱比較
當密碼學用於資料與身份驗證
除了加密外還有 雜湊函數(Hash)
將任意長度的字串轉成固定長度
用途:
- 驗證資料完整性(Data integrity)
- 用不安全通道傳很大的檔案 用安全通道傳該檔案的 Hash 以節省加密解密所需的資源
- 在不取得明文的情況下驗證資料正確性
- 儲存使用者密碼的 Hash 在資料庫,確保管理員看不到使用者密碼的明文
Hash 的特點
- 不管資料量多大經過雜湊運算字串長度都是一樣的
- 它是一個不可逆的算法所以我們可以看到箭頭是單向
- 相同的值用雜湊運算過後值都是一樣的
知名雜湊函數:MD5、SHA-256
NOTE:基本方式也是,求餘、取餘、調整長度、與連結變數進行迴圈運算。得出結果。
等等 那那那 Base64 呢?
編碼 != 加密 兩個是完全不一樣的東西
編碼 != 加密 兩個是完全不一樣的東西
編碼 != 加密 兩個是完全不一樣的東西
NOTE: Base64主要用途是某些系統中只能使用ASCII字符,為了避免某些機器無法識別我們傳輸資料